/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.sgs.persist;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author MaUrO FiLhO
 */
@Entity
@Table(name = "cotacao")
@NamedQueries({
    @NamedQuery(name = "Cotacao.findAll", query = "SELECT c FROM Cotacao c"),
    @NamedQuery(name = "Cotacao.findByIdCotacao", query = "SELECT c FROM Cotacao c WHERE c.idCotacao = :idCotacao"),
    @NamedQuery(name = "Cotacao.findByCotacao", query = "SELECT c FROM Cotacao c WHERE c.cotacao = :cotacao"),
    @NamedQuery(name = "Cotacao.findByValorUnitario", query = "SELECT c FROM Cotacao c WHERE c.valorUnitario = :valorUnitario"),
    @NamedQuery(name = "Cotacao.findByDesconto", query = "SELECT c FROM Cotacao c WHERE c.desconto = :desconto"),
    @NamedQuery(name = "Cotacao.findByValorTotal", query = "SELECT c FROM Cotacao c WHERE c.valorTotal = :valorTotal"),
    @NamedQuery(name = "Cotacao.findByDescricao", query = "SELECT c FROM Cotacao c WHERE c.descricao = :descricao"),
    @NamedQuery(name = "Cotacao.findByPrazoEntrega", query = "SELECT c FROM Cotacao c WHERE c.prazoEntrega = :prazoEntrega")})
public class Cotacao implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id_cotacao")
    private Integer idCotacao;
    @Column(name = "cotacao")
    private Float cotacao;
    @Column(name = "valor_unitario")
    private Float valorUnitario;
    @Column(name = "desconto")
    private Float desconto;
    @Basic(optional = false)
    @Column(name = "valor_total")
    private float valorTotal;
    @Basic(optional = false)
    @Column(name = "descricao")
    private String descricao;
    @Basic(optional = false)
    @Column(name = "prazo_entrega")
    @Temporal(TemporalType.DATE)
    private Date prazoEntrega;
    @JoinColumn(name = "id_item", referencedColumnName = "id_item")
    @ManyToOne(optional = false)
    private ItemPedido itemPedido;
    @JoinColumn(name = "id_fornecedor", referencedColumnName = "id_fornecedor")
    @ManyToOne(optional = false)
    private Fornecedor fornecedor;

    public Cotacao() {
    }

    public Cotacao(Integer idCotacao) {
        this.idCotacao = idCotacao;
    }

    public Cotacao(Integer idCotacao, float valorTotal, String descricao, Date prazoEntrega) {
        this.idCotacao = idCotacao;
        this.valorTotal = valorTotal;
        this.descricao = descricao;
        this.prazoEntrega = prazoEntrega;
    }

    public Integer getIdCotacao() {
        return idCotacao;
    }

    public void setIdCotacao(Integer idCotacao) {
        this.idCotacao = idCotacao;
    }

    public Float getCotacao() {
        return cotacao;
    }

    public void setCotacao(Float cotacao) {
        this.cotacao = cotacao;
    }

    public Float getValorUnitario() {
        return valorUnitario;
    }

    public void setValorUnitario(Float valorUnitario) {
        this.valorUnitario = valorUnitario;
    }

    public Float getDesconto() {
        return desconto;
    }

    public void setDesconto(Float desconto) {
        this.desconto = desconto;
    }

    public float getValorTotal() {
        return valorTotal;
    }

    public void setValorTotal(float valorTotal) {
        this.valorTotal = valorTotal;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Date getPrazoEntrega() {
        return prazoEntrega;
    }

    public void setPrazoEntrega(Date prazoEntrega) {
        this.prazoEntrega = prazoEntrega;
    }

    public ItemPedido getItemPedido() {
        return itemPedido;
    }

    public void setItemPedido(ItemPedido itemPedido) {
        this.itemPedido = itemPedido;
    }

    public Fornecedor getFornecedor() {
        return fornecedor;
    }

    public void setFornecedor(Fornecedor fornecedor) {
        this.fornecedor = fornecedor;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idCotacao != null ? idCotacao.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Cotacao)) {
            return false;
        }
        Cotacao other = (Cotacao) object;
        if ((this.idCotacao == null && other.idCotacao != null) || (this.idCotacao != null && !this.idCotacao.equals(other.idCotacao))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "br.com.sgs.persist.Cotacao[idCotacao=" + idCotacao + "]";
    }

}
